
// 导入头部尾部模型
const hfModel = require('../models/hf.js');

class HfController{

    static AddInfoPutInStore=(req, res) => {
        // 完成多文件上传功能
        let codePaths={banner:'',logo:' '}
        if(req.files){
            for(let attr in req.files){
                codePaths[attr]=req.files[attr][0].filename;
            }
        }
        let {_id, keyword, hotLineOne, hotLineTwo, email, copyright, beianhao} = req.body;
        //存在即更新操作，否则添加操作
        if (_id) {
            hfModel.findById(_id, (error, data) => {
                if (error) {
                    res.send('updata failure!');
                    return;
                } else {
                    data.keyword = keyword;
                    data.hotLineOne = hotLineOne;
                    data.hotLineTwo = hotLineTwo;
                    data.email = email;
                    data.copyright = copyright;
                    data.beianhao = beianhao;
                    data.banner=codePaths.banner;
                    data.logo = codePaths.logo;

                    let error = data.validateSync();//验证表单是否合法
                    if (error) {
                        // 如果有错误，将错误信息给用户
                        const errorRs = [];
                        for (let attr in error.errors) {
                            errorRs.push(`${hfModel.fields[attr]}: ${error.errors[attr]}`);
                        }
                        //将错误信息返回给前台用户。单独封装一个错误页面 提示用户
                        let url = '/admin/website/hf';
                        let time = 5;
                        res.render('error', {errorRs, url, time});
                        return;
                    } else {
                        data.save((error, data) => {
                            if (error) {
                                console.log(error);
                                res.redirect('/admin/website/hf');
                            } else {
                                console.log(data);
                                /*redirect翻译过来叫做重定向，也可以理解为跳转。参数就是我们跳转的地址*/
                                res.redirect('/admin/website/hf');

                            }
                        });
                    }
                }
            })
        } else {
            let hfObj = new hfModel({
                keyword,
                hotLineOne,
                hotLineTwo,
                email,
                copyright,
                beianhao,
                banner:codePaths.banner,
                logo:codePaths.logo,
            });
            // 通过这个方法，可以调用我们在模型里面定义好的验证规则进行处理
            let error = hfObj.validateSync(); //默认行为，代表一旦出错，代码终止
            //如果验证没出错 ，error为undefined，否则返回错误信息
            if (error) {
                // 如果有错误，将错误信息给用户
                const errorRs = [];
                for (let attr in error.errors) {
                    errorRs.push(`${hfModel.fields[attr]}: ${error.errors[attr]}`);
                }
                //将错误信息返回给前台用户。单独封装一个错误页面 提示用户
                let url = '/admin/website/hf';
                let time = 5;
                res.render('error', {errorRs, url, time});
            } else {
                hfObj.save((error, data) => {
                    if (error) {
                        console.log(error);
                        res.redirect('/admin/website/hf');
                    } else {
                        console.log(data);
                        res.redirect('/admin/website/hf');
                    }
                });
            }
        }
    };

    static  showInfo=async (req, res) => {
        // 为用户制作一个添加信息的表单
        const info = await hfModel.findOne();
        if (info) {
            // 如果信息存在，则把信息给到页面作展示
            res.render('header_footer', {info: info});
        } else {
            // 不存在，则做添加操作
            res.render('header_footer', {info: {}});
        }
    };
}

module.exports=HfController;